// ブラウザ三国志　自動出兵ツール
// 出兵確認画面で、指定時間に「出兵」ボタンを自動クリックする。
//
// 出兵時間を指定する枠を表示　[HH]時[MM]分
// 指定時間になったら出兵ボタンが押される（マウスでクリックしたのと同じ動作をする）。
// そのため、確認画面を開っぱなしにしておく。
// アクセス時間があきすぎるとセッションタイムアウトになってしまう可能性あり。
// 予約時間はサーバー時間ではなくマシン時間
//
// ver0.3  2010-05-24 本拠地以外から出兵できるように修正,Google Chromeでも動作を確認
// ver0.2  2010-05-22 秒までの指定に対応
// ver0.1  2010-05-22 新規作成
//
// Released under the GPL license
// 
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: https://addons.mozilla.org/en-US/firefox/addon/748
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Hello World", and click Uninstall.
//
// --------------------------------------------------------------------
// ==UserScript==
// @name          3gokushi autoTroop
// @version       0.3
// @namespace     http://mixi.jp/
// @description   出兵時間を予約
// @include       http://*.3gokushi.jp/facility/*
// ==/UserScript==

window.executeTroop = function()
{
    var btn = window.document.getElementById("btn_send");
    btn.click();
}
window.displayTroop = function()
{
    var obj = window.document.getElementById("gray02Wrapper");
    var html = "";
    html += '<strong>【出兵予約】</strong> ';
    html += '<select id="autoTroop_HH"><option value="">--</option>';
    for ( var i=0; i < 24; i++) {
        html += '<option value="' + i + '">' + i +'</option>';
    }
    html += '</select>';
    html += '時';
    html += '<select id="autoTroop_MM"><option value="">--</option>';
    for ( var i=0; i < 60; i++) {
        html += '<option value="' + i + '">' + i +'</option>';
    }
    html += '</select>';
    html += '分';
    // 秒の指定
    html += '<select id="autoTroop_SS"><option value="">--</option>';
    for ( var i=0; i < 60; i++) {
        html += '<option value="' + i + '">' + i +'</option>';
    }
    html += '</select>';
    html += '秒';
    html += '<span id="autoTroop_hms" style="">に自動的に出兵ボタンを押します(最終チェック--時--分)</span>';
    obj.innerHTML += '<div style="text-align:center; border:3px #000 solid;padding:6px;-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 10px;">' + html + "</div>";
    // 0.5秒間隔でチェックする
    window.setInterval(function(){ checkTroopTime() } , 0.5 * 1000);
}
window.checkTroopTime = function()
{
    var h = window.document.getElementById("autoTroop_HH").value;
    var m = window.document.getElementById("autoTroop_MM").value;
    var s = window.document.getElementById("autoTroop_SS").value;
    // 現在時刻取得
    var now = new Date();
    now_h = now.getHours();
    now_m = now.getMinutes();
    now_s = now.getSeconds();
    if ( h == now_h && m == now_m && s <= now_s ) {
        executeTroop();
    }
    // 予約が有効なことを表示
    var obj = window.document.getElementById("autoTroop_hms");
    if ( h != "--" && m != "--" ) {
        obj.innerHTML = "に自動的に出兵ボタンを押します(最終チェック" + now_h + "時" + now_m + "分)";
    }
}
var title = window.document.title;
if ( title.indexOf("出兵(確認) - ブラウザ三国志") != -1 ) {
  window.setTimeout(function() { displayTroop();}, 1000);
} else {
  // 出兵確認画面でなければ何もしない
}
